This invention relates generally to simulating advertising campaigns, and particularly to segmenting the simulation of a simulated advertising campaign.
Modern advertising platforms may serve hundreds of thousands of advertisements in an hour, and millions or tens of millions of advertisements in a day. As users access advertising publishers over the Internet, the advertising publishers may direct the user device to an advertising system with an ad query for the advertising system to provide an advertisement to the user. Advertisers set an advertising campaign with the advertising system including a budget and a duration in which to spend the budget.
When the advertising system receives an ad request, the advertising system selects an advertisement to serve to the user using an ad model that may provide for an auction among candidate advertisers. As advertisers win and lose auctions, the advertiser may be above or below expected spending for the budget and duration of the campaign. An advertiser's bid in the auction may be increased or decreased based on a pacing algorithm to spend the budget during the duration of the ad campaign. An advertiser or operator of the adverting system may wish to know the performance of advertisements under different conditions from the conditions under which ads were originally served. Performing an analysis of different conditions may be particularly difficult due to the immense scale of the number of advertisements served. A system that evaluates all ad queries with a static set of conditions may fail to reflect the change in conditions that occur as ads are served (such as modifying bids based on budget pacing) and provide inaccurate results.